Bios dynamic emulation of multiple diskettes from a single media

ABSTRACT

A personal computer is BIOS configured to boot from an installed CD-ROM storing multiple operating systems in different partitions of the medium. The computer is initially booted from a user selected or default partition emulating a logical drive. With the original boot partition maintained active, emulation of additional partitions as other drives is performed when needed. This is accomplished in BIOS with multiple device tables, each dynamically associated with a logical drive letter. Hence, the system files found in only the original boot partition remain available to the system when other logical drives are called.

The application is a continuation of application Ser. No. 08/313,710, filed Sep. 27, 1994, now abandoned.

CROSS-REFERENCES TO RELATED APPLICATIONS

The subject matter presented herein relates to inventions described in the following applications, all filed on even date and under common ownership herewith: Williams, BIOS EMULATION OF A HARD FILE IMAGE AS A DISKETTE, U.S. Ser. No. 08/313,709, now U.S. Pat. No. 5,692,190 (BC9-94-130); Williams, DATA PROCESSOR HAVING BIOS DECRYPTION OF EMULATED MEDIA IMAGES, U.S. Ser. No. 08/312,748, now U.S. Pat. No. 5,652,868 (BC9-94-132); and Williams et al., BIOS EMULATION PARAMETER PRESERVATION ACROSS COMPUTER BOOTSTRAPPING, U.S. Ser. No. 08/312,749, abandoned, now U.S. Ser. No. 08/811,329 and U.S. Pat. No. 5,694,583 (BC9-94-129).

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to the bootstrapping sequence of a data processing system, such as a personal computer, and more particularly, to booting from a CD-ROM storage medium bearing multiple images.

2. Description of Related Art

All computers, such as the various models of personal computers, or PC's, produced by IBM Corporation, execute "operating system software" that instructs the PC on how to use other programs, termed "application software," such as word processing and spreadsheet programs. Examples of PC operating systems include MS-DOS and WINDOWS, manufactured by Microsoft Corporation, and IBM's OS/2.

Before a PC can run an operating system, it must load the operating system from a disk to the PC's working memory which is ordinarily random access semiconductor memory (RAM). This is carried out through a process known as "bootstrapping," or more simply, "booting" the PC. Booting occurs automatically when the PC is first turned on, a process called a "cold boot" or by the user while the computer is running ("warm boot").

Bootstrapping performs only two functions, the first being to run a power-on self-test, or POST, and the other to search the storage media (floppy diskette or hard disk) for the operating system it will load. These functions are controlled by firmware stored in one or more basic input-output system, or BIOS, chips inside the PC.

The POST initializes all the internal hardware and hardware connected to the PC known to it, such as memory, and tests and places the hardware in an operational state. The BIOS program then normally checks drive A of the PC to determine if it contains a formatted floppy disk. If a disk is mounted in the drive, the program searches specific locations on the disk to determine if a valid boot record exists. If the floppy drive is empty, the boot program checks the hard drive C for the system files. In the absence of these files, the BIOS will generate an error message.

After locating a disk with a valid boot record, the BIOS program reads the data stored on the first sector of the disk, and copies that data to specific locations in RAM. This information, found in the same location on every formatted disk, constitutes the DOS boot record. The BIOS then passes control to the boot record which instructs the PC on how to load the two hidden operating system files to RAM (the files named IBMBIO.COM and IBMDOS.COM on IBM computers). After loading other operating system files into RAM to carry out the rest of the boot up sequence, the boot record is no longer needed.

The root directory of the boot disk is next searched for a file created by the user (CONFIG.SYS) and which contains commands instructing the operating system how to handle certain operations such as how many files may be opened at a time, and so-called device drivers which describe the existence and characteristics of hardware devices not recognized by BIOS that may be connected to the PC.

Next loaded from the boot disk into RAM is the file COMMAND. COM which is an operating system file containing, among other functions, fundamental DOS commands used throughout application program execution, and a file named AUTOEXEC.BAT created by the user and containing a series of DOS batch file commands or program names to be executed by the PC each time the computer is turned on. This completes the boot up sequence, and at this point the computer is considered fully booted and ready to be used.

The usual types of storage media, in order of storage density, are floppy disk, hard disk storage, which are magnetic media, and more recently, CD-ROM which is an optical medium capable of storing a considerable amount of data. A CD-ROM is a "read only" medium, although magneto-optical media, capable of being written to as well as read from, are emerging. Presently, floppy disks are 5.25 or 3.5 inches in diameter, with smaller sizes now emerging, and are capable of storing up to 2.88 megabytes of data. Hard disks store considerably more data, currently in the range of up to 2 gigabits, arranged as clusters disbursed throughout the medium.

CD-ROM's have attributes of both hard disks and floppy diskettes, that is, they have the storage capacity of a hard drive and the replaceability of a diskette. CD-ROM technology currently is capable of storing more than 600 megabytes of read-only data along a continuous spiral track on a phonograph record-like optical medium. As with other disk media, the CD divides its capacity into short segments, or "large frames" for addressing. The number of such large frames varies but can reach about 315,000, each containing 2352 bytes under a defined media standard. Most of the frame contains data and the remainder is divided among a synchronization field, sector address tag field and an auxiliary field. Data stored on the CD-ROM is formatted as sectors of data comprising 800 h bytes each, and with boot record residing at a prescribed (11 h) sector in the last session on the CD. The boot record points to a boot catalog providing descriptions and locations of disk or diskette image emulations recorded on the CD-ROM, one or more of which may be bootable and may carry an operating system.

Image formats of these three types of media are hierarchical in structure, with diskette lowest and CD-ROM highest, and each medium adding regions of storage overlying the storage regions of the medium beneath it. Referring to FIG. 1, which depicts the image formats of the three media, a floppy diskette starts with a boot record, which is a short program loading the operating system into the main memory, followed by a pair of file allocation tables (FAT's) which record the file structure of the diskette (two FAT's are often provided, as shown, to perform an integrity check on stored files). Next is a root directory which records the files stored on the diskette, and finally the data storage region.

The structure of a fixed disk includes not only the same regions as found in a diskette, but precedes with a reserved region as well as a partition table which, as the first record on the disk, defines the operating boundaries constituting the logical partitions of the disk, if the disk is partitioned by the user.

A CD-ROM adds to that a table of descriptors, such as defined by ISO 9660, as the first record on the CD. How data is organized into files stored on a CD-ROM is designated by the ISO 9660 specification, which specifies, among other things, that a "Primary Volume Descriptor" must reside at sector 10 h relative to the start of a session, followed by any number of other Volume Descriptors, and then by a "Volume Descriptor Terminator." The boot catalog, following the ISO descriptors, is a directory pointing to the stored images as files as identifying image characteristics. Incorporation by reference is made herein to the ISO 9660 specification in its entirety.

The ISO 9660 specification provides, optionally, new boot capabilities for personal computers, a concept disclosed in the "El Torito" bootable CD-ROM format specification, Version 1.0, recently jointly developed and made publically available by Phoenix Technologies and IBM Corporation, the assignee of the present invention. This specification, incorporated herein by reference, describes how the BIOS boot procedure can be enhanced to support the CD-ROM using INT 13 calling conventions for enabling the CD-ROM to boot as the A drive or C drive without device drivers. In accordance with this specification, if the user selects one of the boot CD-ROM options on a setup menu, and during POST the BIOS detects the presence of a CD-ROM drive, INT 19 at the end of POST will attempt to load the operating system using the boot sequence specified in Setup. To accomplish this, the installable boot CD-ROM feature makes available one of two INT 19 functions, namely, single image and multiple image INT 19.

The single image INT 19 feature accesses the booting catalog in the CD-ROM header, verifies the existence of a boot image on the CD-ROM and reads the initial/default entry and then boots from the disk image specified in this entry. Multiple image INT 19, if instructed to boot from the CD-ROM, accesses the booting catalog, verifies, and then boots from either the image specified in the initial default entry or from one of the other images listed in the section headers and section entries that follow the initial/default entry.

Three types of CD-ROM configuration are shown in FIGS. 2(a)-2(c). In FIG. 2(a), the normal CD-ROM configuration is not bootable; it uses root directory and CD-ROM drivers to access CD-ROM images. In FIG. 2(b), a BIOS with a single boot image capability accesses the initial/default entry to access a single bootable disk image. After loading the operating system, the system can revert to standard CD-ROM drivers and the root directory to access CD-ROM images. In FIG. 2(c), a BIOS with multiple boot-image capability can access any one of a number of bootable disk images listed in the booting catalog. After loading the operating system, the system can access other items in the disk image with standard INT 13 calls or return to normal access of CD-ROM images using CD-ROM drivers and the root directory.

The operating environment is depicted in FIG. 5, wherein the right hand side is a map of the first 1M of random access main memory. The lowest address of the main memory is occupied by BIOS data, such as interrupt vectors and other machine specific operating parameters such as identification of drives and access to them through BIOS INT 13 functions. The next region of memory is occupied by the operating system, such as DOS, followed by an extended BIOS area, or BIOS EBDA entered during booting. Residing in the upper layers of the main memory are video data and firmware based BIOS which is fixed for all applications. The usual BIOS functions do not recognize a CD-ROM drive, which is instead defined by ISO-9660 device driver software residing in the operating system, as shown in FIG. 5.

In FIG. 6, in accordance with the El Torito specification, enhancements made to BIOS EBDA enable the INT 13 calls to recognize the CD-ROM and further to provide for hard disk and floppy diskette image emulations derived from the CD-ROM storage files, that is, to treat the emulation images as if they are physical drives. In this example, the CD-ROM image which is booted becomes the A (floppy diskette) drive, and the physical A drive is renamed as drive B.

An important advantage of bootable CD-ROM's in accordance with the El Torito specification is the capability of distributing multiple applications on a single medium. Multiple versions of the same application in different languages can also be distributed; the user simply boots the CD-ROM and then selects the operation system, application set, and/or language to install.

The presently described invention and those described in the copending applications, identified above, provide, among other things, enhancements to the BIOS to support booting from a CD-ROM while maintaining compatibility to prescribed standards, such as the ISO 9660 specification. More particularly, a single CD-ROM may contain multiple bootable formatted partitions, but only the first partition will be used at initial boot time. However, the problem of booting from one partition and then requiring access to one or more additional partitions on the same media emulating other logical drives can be encountered. It is possible to start a program from the boot partition and then logically replace it with another partition as another logical drive becomes needed. A problem with this solution is that the operating system may need access to system files that are available only from the initial boot partition. If system file access, such as COMMAND.COM, is attempted but not successful, catastrophic failure can occur.

DOS and other operating systems provide access to multiple images on the same physical drive via partition tables at the beginning of the medium. However, this type of implementation provides a static view of the medium. A need remains to render the ability to dynamically add and remove multiple images without restarting the operating system.

SUMMARY OF THE INVENTION

The invention provides a data processing system comprising a central processing unit (CPU), a system memory for storing data in the form of electrical signals, a first port for receiving an input device generating electrical input signals, and at least one second port for supplying electrical output signals to output devices. The CPU is of a type including a BIOS for carrying out prescribed functions including converting operating signals developed by an operating system executed by the CPU into electrical signals compatible with devices that are responsive to signals provided by the CPU to the system bus.

The data processing system further includes a drive for a non-volatile mass storage medium, such as a CD-ROM, storing multiple emulated drive images, and a system bus interconnecting the CPU, system memory, first and second ports and mass storage medium driver. To install initial emulation parameters corresponding to a default image on the medium, an initial boot is performed. In accordance with the invention, multiple device tables are stored in BIOS, each dynamically associated with a logical drive and mapping the logical drive to a selected image on the medium so as to maintain emulations of multiple images simultaneously active. Hence, multiple images can be dynamically added and removed without restarting the operating system.

Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description, wherein only the preferred embodiment of the invention is shown and described, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWING(S)

FIG. 1 is a diagram showing image formats of diskette, hard drive and CD-ROM storage media.

FIGS. 2(a)-2(c) are diagrams showing configurations of non-bootable CD-ROM, single boot image CD-ROM and multiple boot image CD-ROM, respectively.

FIG. 3 is a perspective view of a personal computer system within which the present invention has application.

FIG. 4 is a block diagram of a personal computer based data processing system within which the invention may reside.

FIG. 5 is a diagram of the ISO-9660 operating environment upon which the invention is optionally based.

FIG. 6 is a diagram showing BIOS implementation of multiple CD-ROM image emulation per the El Torito specification.

FIG. 7 is a diagram showing multiple emulation tables residing in BIOS EBDA in accordance with an aspect of the invention.

FIG. 8 shows emulation of a CD-ROM image by table activation.

FIG. 9 shows multiple table activation to emulate two drives simultaneously as provided by the present invention.

FIG. 10 is a diagram showing flow of data during CD emulation of drive A.

DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENT(S)

With reference now to the Figures, and in particular with reference to FIG. 3, a personal computer, or PC, designated 10 is of the environment to which the invention has particular utility. The computer 10 which preferably, but not necessarily, is of a type utilizing an IBM Personal Computer 2 or similar system, includes a console housing 12 within which circuit boards containing the necessary circuitry including microprocessor and BIOS chips, controllers, random access memory and other hardware are arranged. The computer will also include a display 14 and a keyboard 16 connected into the housing 12 through cable 18. Mass storage media include a hard drive within the housing and not accessible to the user, and user accessible floppy disk and CD-ROM drives 20 and 22.

The architecture of computer system 10, depicted in FIG. 4, is based on a system bus 22 on which data is passed between components of the computer, including a central processing unit (CPU) 24 which preferably is based on one of the "486" family or more powerful types of processors, manufactured by Intel Corporation or others, executes programs stored in main or system memory 26 and manipulates data stored in the same memory. Data, including multimedia, may be stored in CD-ROM 28 and accessed by CPU 24 per ISO 9660 specifications through a device controller 30 connected to system bus 22. Other data are stored in floppy and hard disk drives 32 and 34 for access by the CPU 24 through corresponding controllers 30b and 30c. Display 14 is connected to the system bus 22 through a video controller 36.

Preferably, the CD-ROM is bootable, as described previously, and in the invention is formatted in accordance with the El Torito bootable CD-ROM format specification. The bootable CD-ROM format incorporated by the invention maintains compatibility with ISO-9660 while providing BIOS with a means of finding the location on the CD that contains the material to be booted. The format is detailed in an appendix hereto (APPENDIX).

With reference to FIG. 7, multiple emulation CD-ROM images are made available to the user through multiple emulation tables added in accordance with the invention to the BIOS EBDA, four being illustrated in the present example. Each of these tables is dynamically associated with a logical drive letter. The table provides the translation necessary to map the logical drive to a selected image on the medium. An example of a device table is as follows:

    ______________________________________                                         SpSize        db    ?         ;set if table active                             SpMediaType   db    ?                                                          SpDrive       db    ?         ;logical drive                                   SpController  db    ?                                                          SpLba         dd    ?         ;physical location on                                                          medium                                           SpLun         db    ?                                                          SpBus         db    ?                                                          SpCacheSegment                                                                               dw    ?                                                          SpLoadSegment dw    ?                                                          SpLoadCount   dw    ?                                                          SpCylinder    db    ?         ;physical mapping                                                              information                                      SpSector      db    ?                                                          SpHead        db    ?                                                          TotalSectors  dd    ?                                                          SectCylinder  dw    ?                                                          MediaChange   db    ?         ;set if medium has                                                             changed                                          LockCount     db    ?         ;logical media lock                              BootOffset    dw    ?         ;location of boot                                                              sector                                                         dw    ?         ;contains cipher key                             ______________________________________                                    

wherein the "Sp" prefix designates "specification," db, dw and dd represent byte, word and double word, respectively, and a "?" indicates a reservation in main memory.

Each table describes all the characteristics of a CD-ROM image to be emulated, such as size, media type, and format entities peculiar to hard drive and diskette media. The final entry in the table is a cipher key used in conjunction with file decryption at BIOS level as described in the copending application entitled DATA PROCESSOR HAVING BIOS DECRYPTION OF EMULATED MEDIA IMAGES. BIOS, by activating any table per the El-Torito specification (describing only single emulation table implementation) INT 13 Function 4A, can determine which drive is being emulated, and where on the CD-ROM the emulation is to be found.

With reference to FIG. 8, emulation of drive A is initiated by activation of the corresponding table by a BIOS call through INT 13, when, as mentioned previously, the physical A drive becomes renamed as the B drive, the A drive having been replaced by the emulation.

Data flow under this condition is as follows. Referring to FIG. 10, file data is being read from emulated A drive on the CD-ROM, is sent to the CD data buffer within the BIOS EBDA, and from there transferred to a buffer within the operating system, in this example, DOS. Other buffers may also contain data read from the other emulations, as follows.

With the A drive emulation remaining active, the BIOS table for emulation B is next activated as shown in FIG. 9, so that both drive images remain accessible to the user at the same time, without requiring a reboot. In this case a hard drive image emulation replaces the physical B drive which becomes unusable.

If the operating system is DOS, emulation must be started or stopped only on a floppy emulation or other drive recognized by DOS, not on a hard drive emulation, as under DOS a hard drive cannot be dynamically removed or replaced. Only valid operating system images can be emulated by BIOS, that is, the master boot record or partition boot record must contain a valid BIOS parameter block. Furthermore, emulation should not be changed on the initial boot drive, as when DOS initially boots, it assigns the location of critical system programs, such as COMMAND.COM. During operation, these programs may need to be reloaded. If they are no longer present at their initial boot locations, catastrophic failures can occur.

There has accordingly been described a BIOS configured to boot from an installed CD-ROM storing multiple operating systems in different partitions of the medium. The computer is initially booted from a user selected or default partition emulating a logical drive. With the original boot partition maintained active, emulation of additional partitions as other drives is performed when needed. This is accomplished in BIOS with multiple device tables, each dynamically associated with a logical drive letter. Hence, the system files found in only the original boot partition remain available to the system when other logical drives are called.

Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description, wherein only the preferred embodiment of the invention is shown and described, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive. ##SPC1## 

What is claimed is:
 1. A data processing system, comprising:a central processing unit (CPU); a system memory for storing data in electrical signal form; a first port for receiving an input device generating electrical input signals; at least one second port for supplying electrical output signals to output devices; a BIOS included within the CPU for carrying out prescribed functions including converting operating signals developed by an operating system executed by the CPU into electrical signals compatible with devices that are responsive to other signals applied by the CPU; a non-volatile mass storage medium storing in different partitions of the medium multiple independent applications in the form of data on respective BIOS emulated images; a medium drive for receiving the non-volatile mass storage medium; a system bus logically interconnecting the CPU, the system memory, the first and second ports and the medium drive for the non-volatile mass storage medium; and the BIOS configured to initially boot the data processing system from the non-volatile mass storage medium from an initial partition included in the different partitions of the non-volatile mass storage medium and the BIOS including multiple emulation tables, each dynamically associated with a logical drive, for maintaining emulations of multiple images simultaneously active upon calling another logical drive different from the logical drive associated with the initial partition to provide multiple drive images accessible to the data processing system at the same time through the initial booting process.
 2. The data processing system of claim 1, wherein the BIOS configuration includes means for mapping each said associated logical drive to a selected image on the non-volatile mass storage medium.
 3. The data processing system as defined in claim 1, wherein the non-volatile mass storage medium comprises a CD-ROM.
 4. For a data processing system comprising a central processing unit (CPU), a system memory for storing data in electrical signal form, a first port for receiving an input device generating electrical input signals and at least one second port for supplying electrical output signals to output devices, a non-volatile mass storage medium storing multiple independent applications in different partitions of the mass storage medium in the form of data on respective BIOS emulated images, a medium drive for the non-volatile mass storage medium, and a system bus logically interconnecting the CPU, the system memory, the first and second ports and the medium drive for the non-volatile mass storage medium:a BIOS configured for carrying out prescribed functions including converting operating signals developed by an operating system executed by the CPU into electrical signals compatible with devices that are responsive to other signals applied by the CPU to the system bus, the BIOS including an extended BIOS data area including multiple emulation tables, each emulation table being associated with and including characteristics of a corresponding logical drive and the BIOS configured to map each said corresponding logical drive to a selected image on the non-volatile mass storage medium and to maintain emulations of multiple images simultaneously active after an initial boot of the data processing system.
 5. The data processing system as defined in claim 4, wherein the non-volatile mass storage medium comprises a CD-ROM.
 6. A method of operating a data processing system comprising at least a central processing unit (CPU), input and output ports, a system memory for storing data in the form of electrical signals, a medium drive for writing data to and reading data from a non-volatile mass storage medium, wherein the non-volatile mass storage medium contains multiple bootable partitions emulating one or more media images, and a system bus logically interconnecting the CPU, the input and output ports, the medium drive and the system memory, and wherein the CPU includes a BIOS configured for carrying out prescribed functions, the method comprising the steps of:converting by the BIOS operating signals developed by an operating system executed by the CPU into electrical signals compatible with devices that are responsive to signals provided by the CPU to the system bus; and enabling dynamic addition and removal of a second emulated image after an initial boot of the data processing system provides a first emulated image by storing emulation tables in an extended region of the BIOS for the first and the second emulated images, each said emulation table being associated with a corresponding logical drive and providing translation for mapping each corresponding logical drive to a selected emulated image on the non-volatile mass storage medium.
 7. The method of claim 6, including reading data from the mass non-volatile storage medium comprising a CD-ROM.
 8. The data processing system as defined in claim 1, wherein the multiple emulation tables included in the BIOS are included in BIOS EBDA. 